package com.ddh.ddhsanguogame.utils;

/**
 * ThreadLocal 工具类，用于存储和获取当前线程的用户 ID。
 */
public class UserContextHolder {

    // 使用 ThreadLocal 存储用户 ID
    private static final ThreadLocal<Long> USER_ID_THREAD_LOCAL = new ThreadLocal<>();

    /**
     * 设置当前线程的用户 ID。
     *
     * @param userId 用户 ID
     */
    public static void setUserId(Long userId) {
        USER_ID_THREAD_LOCAL.set(userId);
    }

    /**
     * 获取当前线程的用户 ID。
     *
     * @return 用户 ID
     */
    public static Long getUserId() {
        return USER_ID_THREAD_LOCAL.get();
    }

    /**
     * 移除当前线程的用户 ID（通常在请求结束时调用）。
     */
    public static void removeUserId() {
        USER_ID_THREAD_LOCAL.remove();
    }
}
